package com.wlsk.license.common.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class MoneyConverter {

    /**
     * 分转元
     * @param fen
     * @return
     */
    public static BigDecimal fenToYuan(Long fen, RoundingMode roundingMode) {
        if(fen == null) {
            return BigDecimal.ZERO;
        }
        // 100 分等于 1 元
        BigDecimal hundred = new BigDecimal("100");
        // 将分转换为 BigDecimal
        BigDecimal fenBigDecimal = BigDecimal.valueOf(fen);
        // 将分除以 100 得到元，保留两位小数
        return fenBigDecimal.divide(hundred, 2, roundingMode);
    }

    /**
     * 元转分
     * @param yuan
     * @return
     */
    public static Long yuanToFen(BigDecimal yuan) {
        if(yuan == null) {
            return 0L;
        }
        // 1 元等于 100 分
        BigDecimal hundred = new BigDecimal("100");
        // 将元乘以 100 得到分
        BigDecimal fen = yuan.multiply(hundred);
        // 将 BigDecimal 转换为 Long，使用 RoundingMode.HALF_UP 进行四舍五入（如果需要）
        return fen.setScale(0, RoundingMode.HALF_UP).longValue();
    }
}